“—– Introducción a R - Plots —–”



“Herramientas de análisis cuantitativo y su aplicación en la conservación de la biodiversidad”


Este taller ha sido desarrollado por:


1. Objetivos de Aprendizaje

Al final de este taller, podrás aprender cómo:

  • Definir el concepto de capas en un gráfico.
  • Crear un “gráfico de caja” (box plot).
  • Crear un “gráfico de dispersión” (scatter plot).
  • Crear un diagrama de dispersión incluyendo una “línea de regresión” (linear regression).
  • Crear un “histograma” (histograma).
  • Crear un “gráfico de barras” (bar graph).

2. Para empezar

¿Que significa visualizar datos en una manera efectiva?

En este taller, vamos a hablar sobre cómo utilizar R para crear gráficos y visualizar datos. Pero primero, debemos entender qué significa visualizar datos de manera efectiva. Visualizar datos es el proceso en el que creamos representaciones visuales interesantes e influyentes para comunicar información específica de nuestros datos. El diseño juega un papel importante en la creación de gráficos notables que resuenen con nuestra audiencia.

Al decidir visualizar tus datos, es fundamental plantear preguntas sobre los datos y buscar respuestas mediante la modelación de los mismos. Cuando representamos datos de manera visual, es importante comunicar lo que los datos nos dicen de manera clara y en el tipo de gráfico apropiado que nuestra audiencia pueda entender. Una pregunta importante al decidir cómo representar los datos es pensar en cuál es la función de los mismos. Al tener esto en consideración, nos enfocamos en lo que queremos que la audiencia obtenga del gráfico.

¿Qué es necesario para crear gráficos en R?

R cuenta con varias funciones incorporadas para crear gráficos, pero también podemos utilizar paquetes creados por otros usuarios de R para acceder a más funciones. Al instalar un paquete, obtenemos acceso a todas las funciones desarrolladas por el usuario.

Para empezar, vamos a instalar el paquete ggplot2. Solo necesitas hacer esto una vez, ya que ggplot2 se guardará automáticamente en la sección “Packages” en RStudio. Utilizaremos este paquete para crear nuestros gráficos, ya que es el más efectivo para generar gráficos de alta calidad.

install.packages('ggplot2')

Cuando finalice la instalación del paquete, aparecerá un mensaje indicando que se ha instalado correctamente.

Ahora necesitamos cargar el paquete para poder utilizar sus funciones dentro de tu código. Debes completar este paso cada vez que desees usar este paquete en R.

library(ggplot2)

Vamos a utilizar también otros paquetes que nos permiten aplicar algunas funciones especificas o hacer gráficas más interactivas.

install.packages('magrittr', # Lo necesitamos para utilizar algunos operadores
                 'dplyr',  # Lo necesitamos para manipular algunos datos
                 'ratdat', # Lo necesitamos apra obtener una base de datos
                # otros paquetes para hacer gráficas
                 'ggiraph', 
                 'plotly')

3. Capas

En la siguiente sección, vamos a presentar el concepto de capas y por qué es fundamental entender cómo funcionan al utilizar el paquete ggplot2, un paquete basado en la idea de capas de código, para visualizar tus datos.

En primer lugar, dentro de la función ggplot() vamos a definir la base de datos (por ejemplo una tabla con columnas=variables y filas=registros) e identifiar las variables que deseas visualizar. Dentro de la funció gglplot()encontraremos la función aes(), que describe las variables independientes y dependientes.

Con esta información en mente, vamos a explorar una serie de líneas de código y sus resultados para comprender cómo utilizar capas con varias funciones:

Código 1

Empecemos solo con la función. ¿Qué ocurre al ejecutar la línea de código anterior?

ggplot()

Uhmmm, parece que presenta un area de gráfico pero sin información.

Código 2

Ahora veamos que además de cargar la función necesitamos cargar los datos que queremos visualizar.

En este taller, vamos a empezar visualizando los datos “parrot_clean”. La estructura de datos “parrot_clean” describe la ocurrencia de ocho especies de loros o pericos Amazónicos en Venezuela en 2010 (Ferrer et al. 2013; GBIF link). Nota: Esta estructura de datos ha sido modificada para el propósito de este taller. En el próximo taller, “Manejo de Datos”, aprenderemos cómo limpiar datos de manera similar a cómo se modificó esta estructura.

Creemos un objeto (parrot_clean) y carguemos la tabla que contiene información.

Ahora dentro de la función ggplot() incluyamos el objeto que contiene los datos y definamos las variables que queremos graficar.

¿Qué ocurre al ejecutar la línea de código anterior?

parrot_clean <- read.csv("venezuelan_parrots.csv") # puede encontrar este archivo (.csv) en el repositorio de GitHub. Si no recuerda como cargar los datos puede revisar el tutorial "Cargar datos".

ggplot(data = parrot_clean, aes(x = species, y = abundance))

Interesante, ahora tenemos más información (escalas y nombres en el eje X y Y), pero no hay datos.

Código 3

Intentemos ahora adicionar otra capa con el signo + le diremos que sea un boxplot. ¿Qué ocurre al ejecutar la línea de código anterior?

ggplot(data = parrot_clean, aes(x = species, y = abundance)) + 
  geom_boxplot()

¡Finalmente, tenemos un gráfico que visualiza la abundancia de diferentes especies de “pericos o loros” en forma de un “gráfico de caja” utilizando los datos de “parrot_clean”! La línea de código anterior es el esqueleto básico para crear un gráfico en ggplot(). En este ejemplo, creamos un “gráfico de caja” del cual hablaremos más en la siguiente sección. Tal vez hayas notado que cada vez que deseas agregar algo nuevo al gráfico, debes implementar otra función separada por el símbolo +. Cada sección separada por “+” se denomina capa.

Existen muchas otras funciones que pueden ser agregadas a tus gráficos utilizando capas.

Código 4

Otra función importante que será útil para crear gráficos es labs(). La función labs() te permite cambiar los títulos de los ejes del gráfico a algo más informativo que los nombres de las variables. En la siguiente línea de código, labs() se añade a tu esqueleto básico del “gráfico de caja” como una nueva capa:

ggplot(data = parrot_clean, aes(x = species, y = abundance)) +
  geom_boxplot() +
  xlab("'Tipo de Loro' (Type of Parrot Species)") +
  ylab("'Número de Loros' (Number of Parrots) ")

Código 5 Finalmente, es posible agregar un título general al gráfico utilizando la función ggtitle(). Esta función también se añade a tu esqueleto original para producir un gráfico final que sea informativo y atractivo:

ggplot(data = parrot_clean, aes(x = species, y = abundance)) +
  geom_boxplot() +
  xlab("'Tipo de Cotoro' (Type of Parrot Species)") +
  ylab("'Numero de Pericos' (Number of Parrots) ") +
  ggtitle("Different Types of Parrot Species")

Para recordar

En la figura de abajo se resume lo que para que sirve cada línea de código (en general la estructura de capas de ggplot()).

Imagina cada capa como una entidad separada que se encarga de controlar un aspecto de tu gráfico. El uso de capas permite dividir una línea de código que normalmente sería muy larga en piezas más digeribles. Continuamente se pueden agregar capas unas encima de otras para cambiar el gráfico a tu gusto. ¡No hay límite a lo que podrías lograr al crear capas!

4. Grafico de Caja (box plot)

En la próxima parte del taller, continuaremos utilizando el paquete ggplot2, que instalamos previamente, para crear un “gráfico de caja” (box plot). Un “gráfico de caja” es una opción ideal cuando quieres visualizar una variable categórica y una variable continua.

Este tipo de gráfico también proporciona información útil sobre un conjunto de datos, incluyendo la diferencia en distribución e identificación de valores atípicos.

Ahora, vamos a utilizar la línea de código de la sección anterior para demostrar la función geom_boxplot() y visualizar nuestros datos en forma de un “gráfico de caja”.

Como aprendimos en la sección anterior, cada vez que deseas agregar algo nuevo al gráfico, debes añadir una nueva capa separada por el símbolo +. Por lo tanto, vamos a ejecutar la siguiente línea de código para crear un “gráfico de caja”:

ggplot(data = parrot_clean, aes(x = species, y = abundance)) +
  geom_boxplot()

A partir del “gráfico de caja” resultante, podemos obtener conclusiones importantes sobre nuestro conjunto de datos “parrot_clean”. En primer lugar, observamos que la especie “A_amazonica” tiene una mediana más alta en comparación con las otras 4 especies de pericos. Sin embargo, también se observa que la especie “A_ochrocephala” presenta sitios con valores de abundancia más altos en comparación con las otras especies.

Para recordar

Recordemos nuevamente la estructura y los componentes de nuestro código.

5. Graficos de Dispersion (scatter plot)

Ahora, antes de comenzar nuestro análisis, vamos a visualizar la estructura de datos “polar_clean” utilizando el paquete ggplot2.

Esta estructura simplificada proporciona información sobre la temperatura y la cantidad de clorofila para diferentes categorías de profundidad durante el crucero “Polarstern” en 2017 (Castellani et al. 2019).

Las dos variables en las que estamos interesados son la “temperatura superficial promedio del agua” (temperature) y la “cantidad de clorofila” (chlorophyll) - ambas variables continuas que, al visualizarse juntas, crean un gráfico de dispersión.

La primera función que utilizamos en esta línea de código es la función de ggplot(), de la cual hablamos en la sección anterior, y que indica los argumentos que se aplican a todas las capas del gráfico.

La segunda función que utilizamos es geom_point(). Esta función indica que queremos crear un gráfico de dispersión y define cómo queremos disponer los datos en este gráfico. Veamos la gráfica usando la siguiente línea de código:

polar_clean <- read.csv("polar_small.csv")

ggplot(data = polar_clean, aes(x = Temperature, y = Chlorophyll )) + geom_point()

Al observar el gráfico resultante, se aprecia una correlación débil y negativa entre la “temperatura superficial promedio del agua” (temperature) y la “cantidad de clorofila” (chlorophyll). A partir del “gráfico de dispersión” (scatter plot), se podría concluir que a temperaturas más altas, se encuentran cantidades más bajas de clorofila.

5.1 Analisis de Regresion Lineal (linear regression)

Ya que hemos visualizado nuestros datos en forma de un “gráfico de dispersión” (scatter plot), podemos realizar un “análisis de regresión lineal” (linear regression) para examinar la relación entre la “temperatura superficial promedio del agua” (temperature) y la “cantidad de clorofila” (chlorophyll).

Esta prueba se puede realizar utilizando la función lm() en la siguiente línea de código (este es un análisis estadístico formal que veremos en tutorial posteriores, por ahora concentremonos en la visualiuzación de la relación entre dos variables):

simple_linear <- lm(Chlorophyll ~ Temperature, data = polar_clean)

A nuestro “gráfico de dispersión” (scatter plot) le podemos agregar una línea de regresión realizando una pequeña modificación a nuestro código anterior utilizado para crear el gráfico de dispersión simple.

ggplot(data = polar_clean,
       aes(x = Temperature, y= Chlorophyll)) + 
       geom_point() + 
       geom_smooth(method ='lm', se = FALSE)

Al agregar la “línea de regresión” (regression line) podemos decir que nuestra apreciación anterior se visuliza mejor, es decir hay una pendiente negativa en el gráfico, que puede indicar que a mayor “temperatura superficial promedio del agua” (temperature) la “cantidad de clorofila” (chlorophyll) disminuye.

Para recordar

observe en la figura de abajo la explicación de los códigos.

5.2 Gráficos de dispersión más complejos

Vamos a crear un “gráfico de dispersión” (scatter plot) utilizando la estructura de datos “ratdat” (del paquete ratdat), con el “peso” (weight) en el eje horizontal y la “longitud de la pata trasera (hindfoot length) en el eje vertical.

El conjunto de datos “ratdat” es un paquete en R que recopila información del proyecto Portal Project, un estudio ecológico a largo plazo de plantas, ratones y hormigas en el sureste de Arizona, Estados Unidos.

Estas son las líneas de código que vamos a utilizar y el grfico resultate es:

Para recordar

6. Histograma (histogram)

Ahora, vamos a aprender cómo visualizar nuestros datos en otra forma, utilizando un “histograma” (histogram en inglés) con nuestra estructura de datos “parrot_clean”.

Consejo:

Recuerda que cada vez que vuelvas a abrir R y desees utilizar el paquete ggplot2, debes cargar el paquete utilizando la función library(). Es decir library(ggplot2).

Ahora que estamos listos para utilizar el paquete ggplot2, podemos crear nuestro histograma utilizando la siguiente línea de código:

ggplot(data = parrot_clean, aes(x = abundance)) +
  geom_histogram()

En el histograma que hemos creado, se puede observar que hay más de 60 especies (count en el eje ‘Y’, indicando el número de especies) con una abundancia de 0 y abundacias altas presente en pocas especies (por ejemplo 30 en el eje X).

Para recordar

La primera función que utilizamos en la línea de código es la función ggplot(). Esta parte del código no es nueva para nosotros, ya que la hemos utilizado en cada código para crear gráficos. La segunda función que utilizamos es la función geom_histogram(). Esta función indica que queremos crear un histograma y especifica cómo queremos visualizar los datos en el gráfico.

7. Grafico de Barras (bar graph)

Ahora, vamos a aprender el último gráfico que se puede crear en este taller: el “gráfico de barras” (bar graph). Al igual que en los gráficos anteriores, vamos a utilizar el paquete ggplot2, así que asegúrate de cargar el paquete si has vuelto a abrir R. Utiliza la siguiente línea de código:

ggplot(data = parrot_clean, # los datos 
       aes(x = species, y = abundance)) + # variables
geom_bar(stat = 'identity') # resumir los datos de abundancia por especie

El resultado de nuestro código es un “gráfico de barras” (bar graph) que muestra la abundancia de cada especie de loros. Se puede observar en el gráfico que la especie más abundante fue “A_ochrocephala” y la menos abundante fue “A_barbadensis”.

Podemos haer unos cambios que mejorarían la rpsentación del gráfico. Por ejemplo, hacerlo horizontal para ver mejor los nombre de las especies, agregar un color a las barras y ordenar las barras de acuerdo a la abundancia.

ggplot(data = parrot_clean, # los datos 
       aes(y = reorder(species, -abundance), x = abundance)) + # reordenemos las especies con base en la abundancia. Note que x y y están ahora inveridos porque vamos hacer un gráfido horizontal
geom_bar(stat = 'identity', fill="lightblue",  orientation = "y") +
  ylab("Especies")+
  xlab("Abundancia")

Para recordar

8. Gráficos interactivos

Ahora veamos algunas algo interesante. Utilizaremos otros paquetes en R que permiter ser más interactivos con las gráficas que creamos,funciones adicionales que pueden mejorar la visualización de los gáficos de dispersión.

Por ejemplo, el paquete ggiraph permite interactar con los puntos en la gráfica. Pase el cursor por encima de los puntos en la gráfica. Qué nota?

Con el paquete `plotly’ usted puede selecccionar una ventana dentro de la gráfica y hace un zoom para ver los puntos en más detalle. Dedíquele un tiempo a explorar lo interactivo de esta aplicación.

9. Guardando tu grafico

Finalmente, para guardar el nuevo gráfico que hemos creado, hay dos métodos diferentes.

El primer método es hacer clic en el botón de exportar en la página del gráfico. Luego, selecciona el formato y la ubicación donde deseas guardar el gráfico.

El segundo método es mucho más fácil y se puede completar en dos pasos. Primero, asignamos el gráfico que hemos creado a un objeto. Vamos a asignar el histograma que creamos al objeto “histograma”:

histograma <- ggplot(data = parrot_clean, aes(x = abundance)) + geom_histogram()

Ahora, vamos a utilizar la función ggsave(). Necesitamos incluir una ruta con el nombre del archivo donde queremos guardar nuestro gráfico. En este caso, vamos a guardar nuestro gráfico directamente en el escritorio:

ggsave(file = "~/Desktop/Histograma.jpeg", plot = Histograma)

Tips!

Si alguna vez te confundes sobre cual es la ruta donde deseas guardar tu gráfico (es decir, disco duro, folder y subfolder), puedes - utilizar la función getwd() para obtener el formato correcto de tu ‘working directory’ (es decir donde estas trabajando y guardando datos) - indicar la ruta de otro lugar que desees (disco y folder) y finalmente utilizarlo en la función ggsave(). Por ejemplo, guada el histograma en un folder en el disco C:/ (ggsave(C:/graficas/histograma.jpeg)).

10. Ayuda en la web

Algo importante que debemos reconocer al final de la parte instructiva de este taller es que la visualización de datos ha evolucionado y seguirá evolucionando. Este taller es solo una introducción básica a las posibilidades de visualización de datos.

A continuación, le proporcionamos algunas referencias relacionadas con la visualización de datos y cómo mejorar tus gráficos:

11. Practica!

A continuación, presentamos unos ejercicios para poner en práctica lo aprendido:

Ejercicio 1

¿Qué hacen las diferentes partes de la siguiente línea de código?

Completa los espacios en el diagrama utilizando la información del archivo de ayuda.

En RStudio utilice la opción Help en el panel de la derecha y abajo para buscar información sobre la función geom_histogram() del paquete ggplot. En el buscador (la lupa) puede escribir geom_histogram().

Recuerda que el archivo de ayuda no te proporcionará instrucciones detalladas. Debes interpretar la información proporcionada y pensar qué representan las diferentes partes del código.

¡Haz clic aquí para ver la solución!

A. Estructura de Datos

B. Nombre de la Columna

C. Estadístico para Contar Datos

D. Tamaño de las Líneas de Contorno

E. Número de Contenedores

F. Color de la Línea de Contorno

Ejercicio 2

Crea un histograma (histogram) utilizando la estructura de datos “polar”, que muestra la profundidad del agua en millas.

Nota: Ten en cuenta no confundir la estructura de datos “polar_clean” de las secciones anteriores con la estructura de datos “polar”. En este ejercicio, utilizarás la versión sin modificaciones.

Haz clic aquí para solución!
polar <- read.delim("ANT-XXVIII_5_seabirds_marine_mammals.tab", skip = 154)

ggplot(data = polar, aes(x = `Bathy.depth..m...Mid.mean.water.depth.of.30.mi....`)) + geom_histogram()

Ejercicio 3

Construye un “gráfico de caja” (box plot) utilizando la estructura de datos del ejercicio anterior, “ratdat”, para visualizar el “sexo” (sex) en el eje horizontal y la “longitud de la pata trasera” (hindfoot length) en el eje vertical para la especie “merriami”.

Haz clic aquí para solución!
complete %>% 
  filter(species == "merriami" & sex != "") %>%
  ggplot(aes(x = sex, y = hindfoot_length)) + geom_boxplot()

Ejercicio 4a

En esta pregunta, vamos a practicar aplicando capas en ggplot utilizando el conjunto de datos “ATLANTIC_BATS_Study_site.csv”. Estos datos son una recopilación de información del 2017 sobre comunidades de murciélagos en 205 sitios del Bosque Atlántico en Brasil, Argentina y Paraguay. Vamos a crear un gráfico simple que muestre la variable “Altitud” (altitude) en el eje horizontal y la variable “Precipitación anual” (annual rainfall) en el eje vertical.

Haz clic aquí para solución!

Primero, carga “ATLANTIC_BATS_Study_site.csv” y el paquete “ggplot2” en R como de costumbre. Asigna el nombre “bat_site” a la estructura de datos y examina su estructura utilizando las funciones str() y head().

bat_site <- read.csv("ATLANTIC_BATS_Study_site.csv")

str(bat_site)
## 'data.frame':    205 obs. of  19 variables:
##  $ ID                     : chr  "bat1001" "bat1002" "bat1003" "bat1004" ...
##  $ Country                : chr  "Brazil" "Brazil" "Brazil" "Brazil" ...
##  $ State                  : chr  "SAO PAULO" "SANTA CATARINA" "RIO GRANDE DO NORTE" "RIO GRANDE DO SUL" ...
##  $ Municipality           : chr  "CANANEIA" "BLUMENAU" "NISIA FLORESTA" "FREDERICO WESTPHALEN" ...
##  $ Study_location         : chr  "Parque Estadual da Ilha do Cardoso" "Parque Natural Municipal Nascentes do Garcia" "Nisia Floresta National Forest" "Frederico Westphalen" ...
##  $ Latitude               : num  -25.09 -27.06 -6.09 -27.36 -23.91 ...
##  $ Longitude              : num  -47.9 -49.1 -35.2 -53.4 -52 ...
##  $ Precision              : chr  "Not-Precise" "Not-Precise" "Precise" "Not-Precise" ...
##  $ Reserve_Area           : num  15100 5296 175 2 40 ...
##  $ Altitude               : chr  "16" "460" "64" "554" ...
##  $ Altitude1km            : int  16 398 60 554 357 509 652 345 544 570 ...
##  $ Annual_mean_temperature: num  22.6 18.5 25.6 19.1 20.9 22.9 18.6 20.7 22.6 20.4 ...
##  $ Annual_rainfall        : int  2487 1651 1329 1884 1489 1294 1737 1346 1355 1287 ...
##  $ Olsong200r             : chr  "Atlantic Forests" "Atlantic Forests" "Atlantic Forests" "Atlantic Forests" ...
##  $ Olsoneconame           : chr  "Serra do Mar coastal forests" "Serra do Mar coastal forests" "Atlantic Coast restingas" "Araucaria moist forests" ...
##  $ ribeirovegtype         : chr  "Dense Ombrophilous Forest" "Dense Ombrophilous Forest" NA "Mixed Ombrophilous Forest" ...
##  $ BSRs                   : chr  "Serra do Mar" "Serra do Mar" "Pernambuco" "Florestas de Araucaria" ...
##  $ uc                     : chr  "Y" "Y" "Y" NA ...
##  $ protectedtype          : chr  "Park" "Park" "Protected Forest" NA ...
head(bat_site)
##        ID Country               State          Municipality
## 1 bat1001  Brazil           SAO PAULO              CANANEIA
## 2 bat1002  Brazil      SANTA CATARINA              BLUMENAU
## 3 bat1003  Brazil RIO GRANDE DO NORTE        NISIA FLORESTA
## 4 bat1004  Brazil   RIO GRANDE DO SUL  FREDERICO WESTPHALEN
## 5 bat1005  Brazil              PARANA                 FENIX
## 6 bat1006  Brazil           SAO PAULO SAO JOSE DO RIO PRETO
##                                 Study_location   Latitude Longitude   Precision
## 1           Parque Estadual da Ilha do Cardoso -25.086853 -47.92796 Not-Precise
## 2 Parque Natural Municipal Nascentes do Garcia -27.060000 -49.08000 Not-Precise
## 3               Nisia Floresta National Forest  -6.086251 -35.18493     Precise
## 4                         Frederico Westphalen -27.361897 -53.40998 Not-Precise
## 5                       Sitios de Fenix Parana -23.909721 -51.95838 Not-Precise
## 6                                   Talhadinho -20.702213 -49.30106 Not-Precise
##   Reserve_Area Altitude Altitude1km Annual_mean_temperature Annual_rainfall
## 1     15100.00       16          16                    22.6            2487
## 2      5296.16      460         398                    18.5            1651
## 3       174.95       64          60                    25.6            1329
## 4         2.00      554         554                    19.1            1884
## 5        40.00      354         357                    20.9            1489
## 6         8.00      524         509                    22.9            1294
##         Olsong200r                 Olsoneconame            ribeirovegtype
## 1 Atlantic Forests Serra do Mar coastal forests Dense Ombrophilous Forest
## 2 Atlantic Forests Serra do Mar coastal forests Dense Ombrophilous Forest
## 3 Atlantic Forests     Atlantic Coast restingas                      <NA>
## 4 Atlantic Forests      Araucaria moist forests Mixed Ombrophilous Forest
## 5 Atlantic Forests Alto Parana Atlantic forests      Semideciduous Forest
## 6 Atlantic Forests Alto Parana Atlantic forests      Semideciduous Forest
##                     BSRs   uc    protectedtype
## 1           Serra do Mar    Y             Park
## 2           Serra do Mar    Y             Park
## 3             Pernambuco    Y Protected Forest
## 4 Florestas de Araucaria <NA>             <NA>
## 5       Interior Forests <NA>             <NA>
## 6       Interior Forests <NA>             <NA>

Segundo, escribe el esqueleto básico de tu gráfico. Esta es la capa que indica qué datos estás utilizando y cuáles serán tus variables.

Luego, agrega la segunda capa de tu gráfico, separándola con el símbolo “+”. Esta capa indica cómo quieres que tus datos sean representados. En este caso, queremos que los datos sean visualizados en forma de “gráfico de dispersión” (scatter plot) y debemos usar la función geom_point().

ggplot(data = bat_site , aes(x = `Altitude1km`, y = `Annual_rainfall`)) + geom_point()

Ejercicio 4b

Ahora, utilizando los resultados de la parte (a), ejecuta una “regresión lineal” (linear regression) y visualiza la relación en el gráfico que generamos en el ejercicio anterior.

Haz clic aquí para solución!
ggplot(data = bat_site , aes(x = `Altitude1km`, y = `Annual_rainfall`)) + geom_point() + geom_smooth(method = "lm") + scale_x_log10() + scale_y_log10()

Tips!

En la línea de código anterior, observa que utilizamos dos funciones nuevas:

scale_x_log10() - para escalar el eje vertical utilizando el logaritmo en base 10.

scale_y_log10() - para escalar el eje horizontal utilizando el logaritmo en base 10.

Al utilizar estas funciones, podemos distribuir los datos de una manera más precisa y corregir la asimetría entre los datos.

Ejercicio 5

En este ejercicio, utiliza la estructura de datos asignada con el nombre “bat_site” del ejercicio anterior para construir un “gráfico de barras” (bar graph) visualizando el número de ocurrencias registradas para cada estado.

Haz clic aquí para solución!
ggplot(data = bat_site, aes(x = State)) + geom_bar() + theme(axis.text = element_text(angle = 90))

Ejercicio 6

Continuando con la misma estructura de datos, “bat_site”, crea un “gráfico de caja” (box plot) que visualice la variable categórica “estado” (state) en el eje horizontal y la variable numérica “área de reserva” (reserve area) en el eje vertical.

Haz clic aquí para solución!
ggplot(data = bat_site, aes(x = State , y = Reserve_Area)) + geom_boxplot() + theme(axis.text = element_text(angle = 90)) 

library(cowplot)

ggplot(data = bat_site, aes(x = State , y = Reserve_Area)) + geom_boxplot() + theme_cowplot() + theme(axis.text = element_text(angle = 90))

Tips!

En la línea de código anterior, debes tener en cuenta que hemos introducido otras dos funciones nuevas que pueden mejorar nuestros gráficos:

theme_cowplot() - elimina los bordes en el gráfico.

theme(axis.text = element_text(angle = 90)) - cambia la orientación de los nombres en el eje vertical en 90 grados para hacerlos más legibles en el gráfico.

Información!

Cuando escribas código en R y utilices estas funciones para mejorar tus gráficos, es importante tener en cuenta el orden. En este ejercicio, es importante incluir la función theme_cowplot() antes de theme(axis.text = element_text(angle = 90)) porque primero queremos eliminar los bordes antes de cambiar la orientación de los nombres en el eje vertical.

Ejercicio 7

Lee el archivo de ayuda para geom_smooth() en el paquete “ggplot2”. Completa las líneas en el siguiente gráfico con la función de cada argumento en la línea de código. Nota: Utiliza la información en “usage” y “arguments”.

Haz clic aquí para solución!

A. Estructura de Datos

B. Fórmula para uso en la función

C. Color de la Línea de Contorno

D. Tipo/Tamano de la Línea de Contorno

E. Función para uso en el método de la Linea de Contorno

F. ¿Quieres un intervalo de confianza?